package model

import (
	"time"
)

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载实体
 */
type Special struct {
	// 下载评论主键 -- 忽略使用omitempty
	Id             uint64    `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	Title          string    //下载标题
	Content        string    //内容
	Tags           string    //标签
	Img            string    //下载资源封面
	Description    string    //描述
	Viewcount      int       //预览数量
	Specialtype    int       //类型 1基础 2进阶 3 实战 4面试
	CommentFlag    int       //是否允许评论 1允许 0不允许
	IsDeleted      int       //是否删除 1删除 0 微山粗
	Uuid           string    //用户唯一标识
	Avatar         string    //上传用户头像
	Nickname       string    //昵称
	Username       string    // 用户名
	Userid         uint64    //上传用户ID
	Status         int       //发布状态 1发布 0未发布
	FavNum         int       //收藏人数
	LikeNum        int       //喜欢人数
	CommentNum     int       //评论数量
	BuyNum         int       //购买人数
	Price          string    //购买价格
	Realprice      string    //真实价格
	NewFlag        int       //是否最新 1最新 0非最新
	HotFlag        int       //是否热门 1热门0非热门
	PushFlag       int       //是否推荐 1推荐 0不推荐
	CategoryId     uint64    //资源二级分类
	CategoryName   string    //资源二级分类名称
	PanLink        string    //网盘地址
	PanPwd         string    //网盘密码
	TryLink        string    //体验地址
	CreateTime     time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime     time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
	SystemId       uint64    //系统ID
	SystemName     string    //系统名称
	PayFlag        int       //1免费  2 收费
	ClientLink     string    // 客服号
	ClientLinkName string    // 客服名称
	ClientLinkImg  string    // 客服二维码
	QqLinkCode     string    // qq群
	QqLinkName     string    // qq群名称
	QqLinkImg      string    // qq群二维码
	WeixinLink     string    // 微信群号
	WeixinLinkName string    // 微信群名称
	WeixinLinkImg  string    // 微信二维码
	ClientFlag     int       // 是否打开二维码
	Weixingzcode   string    //微信公众号
	Weixingzimg    string    //微信公众号图片
	Opengz         int       //是否打开公众号 1 打开 0不打开
	Videoid        string    //视频
	Path           string    //短路径
	Stimer         string    //时长
	Intro          string    //项目介绍
	Imgs           string    // 项目图集
	StudyList      string    // 你可以学到
	BuyList        string    // 购买须知
	Suitable       string    // 适合人群
	Teachnology    string    //技术储备
	Envionments    string    //环境参数
	GitHubLink     string    // 代码托管地址
	GiteeLink      string    // 代码托管地址
	BgColor        string    // 背景颜色
	NoticeMsg      string    // 通知
}

func (u *Special) TableName() string {
	return "xk_special"
}

/**
 * @desc 收藏
 * @author feige
 * @date 2023-11-15
 * @version 1.0
 */
type SpecialUserFav struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	UserId     uint64    //用户id
	Uuid       string    // 用户UUID
	Nickname   string    //昵称
	Username   string    // 用户名
	Avatar     string    // 用户头像
	IsFocus    int       //1 已收藏 0未收藏
	Opid       uint64    //下载
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
}

func (u *SpecialUserFav) TableName() string {
	return "xk_special_user_fav"
}

/**
 * @desc 收藏
 * @author feige
 * @date 2023-11-15
 * @version 1.0
 */
type SpecialUserLike struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	UserId     uint64    //用户id
	Uuid       string    // 用户UUID
	Nickname   string    //昵称
	Username   string    // 用户名
	Avatar     string    // 用户头像
	IsFocus    int       //1 已点赞 0未点赞
	Opid       uint64    //下载
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间         // 更新时间
}

func (u *SpecialUserLike) TableName() string {
	return "xk_special_user_like"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载评论表
 */
type SpecialCategory struct {
	// 下载评论主键 -- 忽略使用omitempty
	Id          uint64    `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	Title       string    // 分类名称
	Icon        string    // 分类图标
	Description string    // 描述
	ParentId    uint64    // 父ID
	Sorted      int       // 排序 业务使用的是升序 小--大
	Status      int       // 发布状态 0未发布 1发布
	IsDeleted   int       // 删除状态 0未删除 1删除
	SystemId    uint64    // 系统ID
	SystemName  string    // 系统名称
	CreateTime  time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime  time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
}

func (u *SpecialCategory) TableName() string {
	return "xk_special_category"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载评论
 */
type SpecialComment struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	UserId     uint64    //回复用户
	Nickname   string    //昵称
	Username   string    // 用户名
	Avatar     string    //回复人头像
	Content    string    //回复内容
	Opid       uint64    //下载ID
	Title      string    //下载标题
	ReplyNum   int64     //回复数
	Score      int       // 评分
	Uuid       string    //用户UUID
	VipType    int       // vip身份
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	Status     int       //  发布状态 1发布 1未通过
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
}

func (u *SpecialComment) TableName() string {
	return "xk_special_comment"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载评论
 */
type SpecialCommentReply struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)" json:"id"`   // 业务主键
	UserId     uint64    `json:"userId"`                                        //回复用户
	Nickname   string    `json:"nickname"`                                      //昵称
	Username   string    `json:"username"`                                      // 用户名
	Avatar     string    `json:"avatar"`                                        //回复人头像
	Content    string    `json:"content"`                                       //回复内容
	Opid       uint64    `json:"opid"`                                          //下载ID
	Pid        uint64    `json:"pid"`                                           // 父ID
	Title      string    `json:"title"`                                         //下载标题
	Uuid       string    `json:"uuid"`                                          //用户UUID
	Score      int       `json:"score"`                                         // 评分
	SystemId   uint64    `json:"systemId"`                                      // 系统ID
	SystemName string    `json:"systemName"`                                    // 系统名称
	VipType    int       `json:"vipType"`                                       // vip身份
	Status     int       `json:"status"`                                        //  发布状态 1发布 1未通过
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" json:"createTime"` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)" json:"updateTime"`     // 更新时间
	ParentId   uint64    `json:"parentId"`                                      //根父ID
}

func (u *SpecialCommentReply) TableName() string {
	return "xk_special_comment_reply"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 兑换码
 */
type SpecialCode struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	Code       string    //兑换码
	Mark       int       //是否兑换
	Opid       uint64    //下载
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
}

func (u *SpecialCode) TableName() string {
	return "xk_special_code"
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载浏览数记录
 */
type SpecialUserHits struct {
	Id         int       `orm:"column(id);pk;auto;description(主键)"` // 业务主键
	UserId     uint64    //用户ID
	Opid       uint64    //下载
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp)" ` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp)"`      // 更新时间
	Uuid       string    // 用户uuid
	Avatar     string    // 用户头像
	Nickname   string    //昵称
	Username   string    // 用户名
}

func (u *SpecialUserHits) TableName() string {
	return "xk_special_user_hits"
}

/**
 * @desc 用户购买下载
 * @author feige
 * @date 2023-11-15
 * @version 1.0
 */
type UserBuySpecial struct {
	Id            uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	UserId        uint64    //用户id
	Opid          uint64    //用户学习的下载id
	Nickname      string    //购买用户
	Avatar        string    //头像
	Title         string    //购买下载
	Cover         string    //下载封面
	Description   string    //描述
	Code          string    //兑换码
	Price         string    //购买价格
	Phone         string    //用户手机
	Username      string    //用户姓名
	Address       string    //用户地址
	Orderno       string    //订单编号
	Uuid          string    //用户UUID
	OrderJson     string    //订单完整信息
	Tradeno       string    //订单交易号
	PayMethod     int       //1 微信 2 支付宝 3 兑换码
	PayMethodName string    // 支付方式
	SystemId      uint64    // 系统ID
	SystemName    string    // 系统名称
	CreateTime    time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime    time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间
}

func (u *UserBuySpecial) TableName() string {
	return "xk_special_user_buy"
}

type SpecialBind struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	SpecialId  uint64    //专题ID
	Title      string    //章节名称
	Sorted     int       //章节排序
	Status     int       //发布状态1发布0未发布
	IsDeleted  int       //0未删除 1删除
	Price      string    //成交价格
	Type       int       `orm:"column(type);"` //绑定类型 1 专题 2 小册 3 资源 4 老师
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间

}

func (u *SpecialBind) TableName() string {
	return "xk_special_bind"
}

type SpecialBindDetail struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	SpecialId  uint64    //专题ID
	BindId     uint64    //所属绑定分类
	Sorted     int       //视频排序
	Status     int       //1发布 0不发布
	IsDeleted  int       //删除状态0未删除 1删除
	TeacherId  uint64    //老师ID
	NoteId     uint64    //小册ID
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间
}

func (u *SpecialBindDetail) TableName() string {
	return "xk_special_bind_detail"
}

type SpecialBindCode struct {
	Id         uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	Opid       uint64    //对应资源
	Code       string    //兑换码
	Mark       int       //标识1已被使用 0未被使用
	SystemId   uint64    // 系统ID
	SystemName string    // 系统名称
	CreateTime time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间
	SpecialId  uint64    //专题ID

}

func (u *SpecialBindCode) TableName() string {
	return "xk_special_bind_code"
}

type SpecialBindUserBuy struct {
	Id            uint64    `orm:"column(id);pk;auto;description(主键)"` // 主键
	UserId        uint64    //支付用户ID
	Opid          uint64    //资源ID
	Nickname      string    //支付用户昵称
	Avatar        string    //支付用户头像
	Title         string    //支付资源标题
	Cover         string    //支付资源封面
	Description   string    //支付描述
	Code          string    //兑换码
	Price         string    //支付价格
	Phone         string    //支付手机号码
	Username      string    //支付用户手机
	Address       string    //支付用户
	Orderno       string    //收货地址
	Uuid          string    //支付用户唯一标识
	OrderJson     string    //支付订单信息
	Tradeno       string    //交易号
	PayMethod     int       //1 微信 2 支付宝 3 兑换码
	PayMethodName string    //支付的名称
	SpecialId     uint64    //专题ID
	SystemId      uint64    // 系统ID
	SystemName    string    // 系统名称
	CreateTime    time.Time `orm:"auto_now_add;type(timestamp);description(创建时间);"` // 创建时间
	UpdateTime    time.Time `orm:"auto_now;type(timestamp);description(更新时间);"`     // 更新时间
}

func (u *SpecialBindUserBuy) TableName() string {
	return "xk_special_bind_user_buy"
}
